/**
 * HTML内容安全工具函数
 */

/**
 * 处理HTML内容，确保其安全性（移除危险的脚本和属性）
 * @param {string} html HTML内容
 * @returns {string} 安全的HTML内容
 */
export function sanitizeHtml(html) {
	if (!html) return ''

	// 创建一个DOM解析器
	const doc = new DOMParser().parseFromString(html, 'text/html')

	// 移除所有script标签
	const scripts = doc.querySelectorAll('script')
	scripts.forEach(script => script.remove())

	// 移除可能存在危险的事件处理属性（如onclick等）
	const allElements = doc.querySelectorAll('*')
	allElements.forEach(el => {
		Array.from(el.attributes).forEach(attr => {
			// 移除on开头的属性（事件处理器）
			if (attr.name.startsWith('on')) {
				el.removeAttribute(attr.name)
			}

			// 移除javascript:协议的属性
			if (attr.value.toLowerCase().includes('javascript:')) {
				el.removeAttribute(attr.name)
			}
		})
	})

	// 获取安全的HTML
	return doc.body.innerHTML
}

/**
 * 提取HTML内容中的纯文本
 * @param {string} html HTML内容
 * @returns {string} 纯文本内容
 */
export function htmlToText(html) {
	if (!html) return ''

	// 创建临时DOM元素
	const div = document.createElement('div')
	div.innerHTML = html

	// 获取文本内容
	return div.textContent || div.innerText || ''
}
